Business applications often have to support or utilize the input of large amounts of data based on files or the extraction of large amounts of data by having the application generate files. In networked or distributed architectures, the end user interface is executed on workstations different from the server application, potentially with firewalls or other security between that may restrict possible communication channels between front end and server. In such situations, the developer, administrator, or information manager may identify several considerations such as the transfer of a copy of the data file to or from the application server and from or to the user's local file system, the user interfaces for file transfer, reasonable access permissions to files generated on the server, and the organization of the files on the server.
For example, current user triggered file-based data input into client-server application typically begins when the user enters the location of the file to be uploaded into a special user interface of the application and executes some action to start the upload. In this example, the application system either pulls the file from the location (where the application normally has or requests access to the file in the original location) or the client (via the local front end) actively transfers the file to the server application. In certain cases, a special file transfer mechanism (such as FTP, HTTP PUT, XML message exchange) may be used instead of the channel used for normal user interface-server application communication. The server application may then process the file once it is received. Often, the end user has no means of looking at the file being processed within the application. Moreover, the file may be persisted within the application during processing, but not normally in such a way that an end user can access it. Once the file is successfully processed by the business application, it is typically deleted or moved to a location often unknown or inaccessible to non-expert end users.
Conventional mass-data output into a file typically works in a similar way. For example, in distributed systems, the generated file is usually stored somewhere in the server application and may be downloaded using a user interface for end users. This user interface is often decoupled from the application's standard user interface to read or maintain object data. The organization and access permission concept for the generated files is then devised, which may be challenging for hosted applications.